home *** CD-ROM | disk | FTP | other *** search
/ Your Web Site Creator / Your Web Site Creator.iso / WebSite / data1.cab / Program_Executable_Files / Classes / CALCPAN2.CLA (.txt) < prev    next >
Encoding:
Java Class File  |  1999-01-13  |  6.1 KB  |  337 lines

  1. import java.applet.Applet;
  2. import java.awt.Button;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Event;
  7. import java.awt.Graphics;
  8. import java.awt.GridBagConstraints;
  9. import java.awt.GridBagLayout;
  10. import java.awt.Image;
  11. import java.awt.Insets;
  12. import java.awt.Label;
  13. import java.awt.Panel;
  14. import java.awt.image.ImageObserver;
  15.  
  16. public class CalculatorPanel2 extends Panel {
  17.    Label displayField;
  18.    Button button7;
  19.    Button button8;
  20.    Button button9;
  21.    Button button4;
  22.    Button button5;
  23.    Button button6;
  24.    Button button1;
  25.    Button button2;
  26.    Button button3;
  27.    Button button0;
  28.    Button buttonDivide;
  29.    Button buttonMultiply;
  30.    Button buttonSubtract;
  31.    Button buttonPlusMinus;
  32.    Button buttonPoint;
  33.    Button buttonAdd;
  34.    Button buttonBack;
  35.    Button buttonClear;
  36.    Button buttonEquals;
  37.    String displayString;
  38.    double pendingValue1;
  39.    int pendingOperation;
  40.    boolean hasPendingValue;
  41.    boolean operationClicked;
  42.    Color backgroundColor;
  43.    Image osImage;
  44.    Graphics osg;
  45.    Color bkColor;
  46.    static final int OPERATION_MULTIPLY = 0;
  47.    static final int OPERATION_DIVIDE = 1;
  48.    static final int OPERATION_ADD = 2;
  49.    static final int OPERATION_SUBTRACT = 3;
  50.    static final int OPERATION_EQUALS = 4;
  51.  
  52.    public CalculatorPanel2(Applet var1, int var2) {
  53.       this.GetParameters(var1, var2);
  54.       this.displayField = new Label(this.displayString, 2);
  55.       this.displayField.setBackground(this.bkColor);
  56.       this.button7 = new Button("7");
  57.       this.button8 = new Button("8");
  58.       this.button9 = new Button("9");
  59.       this.button4 = new Button("4");
  60.       this.button5 = new Button("5");
  61.       this.button6 = new Button("6");
  62.       this.button1 = new Button("1");
  63.       this.button2 = new Button("2");
  64.       this.button3 = new Button("3");
  65.       this.button0 = new Button("0");
  66.       this.buttonDivide = new Button("/");
  67.       this.buttonMultiply = new Button("*");
  68.       this.buttonSubtract = new Button("-");
  69.       this.buttonPlusMinus = new Button("+/-");
  70.       this.buttonPoint = new Button(".");
  71.       this.buttonAdd = new Button("+");
  72.       this.buttonBack = new Button("->");
  73.       this.buttonClear = new Button("C");
  74.       this.buttonEquals = new Button("=");
  75.       this.pendingValue1 = (double)0.0F;
  76.       this.hasPendingValue = false;
  77.       this.operationClicked = true;
  78.       GridBagLayout var3 = new GridBagLayout();
  79.       GridBagConstraints var4 = new GridBagConstraints();
  80.       ((Container)this).setLayout(var3);
  81.       var4.gridwidth = 5;
  82.       var4.gridheight = 1;
  83.       var4.gridx = 0;
  84.       var4.gridy = 0;
  85.       var4.fill = 1;
  86.       var4.insets = new Insets(2, 2, 2, 3);
  87.       var4.weightx = (double)1.0F;
  88.       var4.weighty = (double)1.0F;
  89.       var3.setConstraints(this.displayField, var4);
  90.       ((Container)this).add(this.displayField);
  91.       var4.gridwidth = 1;
  92.       var4.gridheight = 1;
  93.       var4.gridx = 0;
  94.       var4.gridy = 1;
  95.       var3.setConstraints(this.button7, var4);
  96.       ((Container)this).add(this.button7);
  97.       var4.gridx = 1;
  98.       var4.gridy = 1;
  99.       var3.setConstraints(this.button8, var4);
  100.       ((Container)this).add(this.button8);
  101.       var4.gridx = 2;
  102.       var4.gridy = 1;
  103.       var3.setConstraints(this.button9, var4);
  104.       ((Container)this).add(this.button9);
  105.       var4.gridx = 3;
  106.       var4.gridy = 1;
  107.       var3.setConstraints(this.buttonDivide, var4);
  108.       ((Container)this).add(this.buttonDivide);
  109.       var4.gridx = 4;
  110.       var4.gridy = 1;
  111.       var3.setConstraints(this.buttonBack, var4);
  112.       ((Container)this).add(this.buttonBack);
  113.       var4.gridx = 0;
  114.       var4.gridy = 2;
  115.       var3.setConstraints(this.button4, var4);
  116.       ((Container)this).add(this.button4);
  117.       var4.gridx = 1;
  118.       var4.gridy = 2;
  119.       var3.setConstraints(this.button5, var4);
  120.       ((Container)this).add(this.button5);
  121.       var4.gridx = 2;
  122.       var4.gridy = 2;
  123.       var3.setConstraints(this.button6, var4);
  124.       ((Container)this).add(this.button6);
  125.       var4.gridx = 3;
  126.       var4.gridy = 2;
  127.       var3.setConstraints(this.buttonMultiply, var4);
  128.       ((Container)this).add(this.buttonMultiply);
  129.       var4.gridx = 4;
  130.       var4.gridy = 2;
  131.       var3.setConstraints(this.buttonClear, var4);
  132.       ((Container)this).add(this.buttonClear);
  133.       var4.gridx = 0;
  134.       var4.gridy = 3;
  135.       var3.setConstraints(this.button1, var4);
  136.       ((Container)this).add(this.button1);
  137.       var4.gridx = 1;
  138.       var4.gridy = 3;
  139.       var3.setConstraints(this.button2, var4);
  140.       ((Container)this).add(this.button2);
  141.       var4.gridx = 2;
  142.       var4.gridy = 3;
  143.       var3.setConstraints(this.button3, var4);
  144.       ((Container)this).add(this.button3);
  145.       var4.gridx = 3;
  146.       var4.gridy = 3;
  147.       var3.setConstraints(this.buttonSubtract, var4);
  148.       ((Container)this).add(this.buttonSubtract);
  149.       var4.gridx = 4;
  150.       var4.gridy = 3;
  151.       var4.gridheight = 2;
  152.       var3.setConstraints(this.buttonEquals, var4);
  153.       ((Container)this).add(this.buttonEquals);
  154.       var4.gridheight = 1;
  155.       var4.gridx = 0;
  156.       var4.gridy = 4;
  157.       var3.setConstraints(this.buttonPlusMinus, var4);
  158.       ((Container)this).add(this.buttonPlusMinus);
  159.       var4.gridx = 1;
  160.       var4.gridy = 4;
  161.       var3.setConstraints(this.button0, var4);
  162.       ((Container)this).add(this.button0);
  163.       var4.gridx = 2;
  164.       var4.gridy = 4;
  165.       var3.setConstraints(this.buttonPoint, var4);
  166.       ((Container)this).add(this.buttonPoint);
  167.       var4.gridx = 3;
  168.       var4.gridy = 4;
  169.       var3.setConstraints(this.buttonAdd, var4);
  170.       ((Container)this).add(this.buttonAdd);
  171.       this.setDisplayString("0");
  172.       this.updateDisplay();
  173.    }
  174.  
  175.    void GetParameters(Applet var1, int var2) {
  176.       String var3 = var1.getParameter("calculatorBkColor" + var2);
  177.       this.bkColor = AppletParam2.GetColor(var3, Color.white);
  178.       ((Component)this).setBackground(this.bkColor);
  179.    }
  180.  
  181.    void setDisplayString(String var1) {
  182.       this.displayString = var1;
  183.    }
  184.  
  185.    String getDisplayString() {
  186.       return this.displayString;
  187.    }
  188.  
  189.    void updateDisplay() {
  190.       this.displayField.setText(this.displayString);
  191.    }
  192.  
  193.    public boolean handleEvent(Event var1) {
  194.       if (var1.id == 1001 && var1.target instanceof Button) {
  195.          Button var2 = (Button)var1.target;
  196.          String var3 = var2.getLabel();
  197.          if (var2 != this.button0 && var2 != this.button1 && var2 != this.button2 && var2 != this.button3 && var2 != this.button4 && var2 != this.button5 && var2 != this.button6 && var2 != this.button7 && var2 != this.button8 && var2 != this.button9) {
  198.             if (var2 == this.buttonPlusMinus) {
  199.                Double var4 = new Double(this.displayString);
  200.                if (var4 < (double)0.0F) {
  201.                   this.displayString = this.displayString.substring(1);
  202.                } else {
  203.                   this.displayString = "-" + this.displayString;
  204.                }
  205.             } else if (var2 == this.buttonPoint) {
  206.                if (this.displayString.indexOf(46) == -1) {
  207.                   String var5 = this.displayString;
  208.                   this.displayString = var5 + ".";
  209.                }
  210.             } else if (var2 == this.buttonBack) {
  211.                if (!this.operationClicked) {
  212.                   if (this.displayString.length() == 1) {
  213.                      this.displayString = "0";
  214.                   } else {
  215.                      this.displayString = this.displayString.substring(0, this.displayString.length() - 1);
  216.                      if (this.displayString.length() == 0) {
  217.                         this.displayString = "0";
  218.                      }
  219.  
  220.                      if (this.displayString.charAt(this.displayString.length() - 1) == '.') {
  221.                         this.displayString = this.displayString.substring(0, this.displayString.length() - 1);
  222.                      }
  223.                   }
  224.                }
  225.             } else if (var2 == this.buttonClear) {
  226.                this.displayString = "0";
  227.                this.pendingValue1 = (double)0.0F;
  228.                this.hasPendingValue = false;
  229.                this.operationClicked = true;
  230.             } else if (var2 == this.buttonMultiply) {
  231.                if (!this.operationClicked) {
  232.                   this.ComputePendingOperation();
  233.                   this.pendingOperation = 0;
  234.                }
  235.             } else if (var2 == this.buttonDivide) {
  236.                if (!this.operationClicked) {
  237.                   this.ComputePendingOperation();
  238.                   this.pendingOperation = 1;
  239.                }
  240.             } else if (var2 == this.buttonAdd) {
  241.                if (!this.operationClicked) {
  242.                   this.ComputePendingOperation();
  243.                   this.pendingOperation = 2;
  244.                }
  245.             } else if (var2 == this.buttonSubtract) {
  246.                if (!this.operationClicked) {
  247.                   this.ComputePendingOperation();
  248.                   this.pendingOperation = 3;
  249.                }
  250.             } else if (var2 == this.buttonEquals && !this.operationClicked) {
  251.                this.ComputePendingOperation();
  252.                this.pendingValue1 = (double)0.0F;
  253.                this.hasPendingValue = false;
  254.                this.operationClicked = true;
  255.             }
  256.          } else {
  257.             if (this.displayString.compareTo("0") == 0) {
  258.                this.displayString = var3;
  259.             } else if (this.operationClicked) {
  260.                this.displayString = var3;
  261.             } else {
  262.                String var10001 = this.displayString;
  263.                this.displayString = var10001 + var3;
  264.             }
  265.  
  266.             this.operationClicked = false;
  267.          }
  268.  
  269.          this.updateDisplay();
  270.          return true;
  271.       } else {
  272.          return false;
  273.       }
  274.    }
  275.  
  276.    void ComputePendingOperation() {
  277.       this.operationClicked = true;
  278.       Double var1 = new Double(this.displayString);
  279.       if (this.hasPendingValue) {
  280.          switch (this.pendingOperation) {
  281.             case 0:
  282.                this.pendingValue1 *= var1;
  283.                break;
  284.             case 1:
  285.                if (this.displayString.compareTo("0") != 0) {
  286.                   this.pendingValue1 /= var1;
  287.                }
  288.                break;
  289.             case 2:
  290.                this.pendingValue1 += var1;
  291.                break;
  292.             case 3:
  293.                this.pendingValue1 -= var1;
  294.          }
  295.  
  296.          this.displayString = Double.toString(this.pendingValue1);
  297.       } else {
  298.          this.pendingValue1 = var1;
  299.          this.hasPendingValue = true;
  300.       }
  301.    }
  302.  
  303.    void setBackgroundColor(Color var1) {
  304.       ((Component)this).setBackground(var1);
  305.    }
  306.  
  307.    Color getBackgroundColor() {
  308.       return ((Component)this).getBackground();
  309.    }
  310.  
  311.    public void paint(Graphics var1) {
  312.       this.update(var1);
  313.    }
  314.  
  315.    public void update(Graphics var1) {
  316.       if (this.osImage == null) {
  317.          this.osImage = ((Component)this).createImage(((Component)this).size().width, ((Component)this).size().height);
  318.          this.osg = this.osImage.getGraphics();
  319.       }
  320.  
  321.       this.osg.setColor(((Component)this).getBackground());
  322.       this.osg.fillRect(0, 0, ((Component)this).size().width, ((Component)this).size().height);
  323.       var1.drawImage(this.osImage, 0, 0, (ImageObserver)null);
  324.    }
  325.  
  326.    public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
  327.       ((Component)this).repaint();
  328.       return true;
  329.    }
  330.  
  331.    public synchronized void reshape(int var1, int var2, int var3, int var4) {
  332.       super.reshape(var1, var2, var3, var4);
  333.       this.osImage = null;
  334.       this.osg = null;
  335.    }
  336. }
  337.